#include <iostream>
#include <chrono>

struct Pixel {
    int color;
    int depth;
};

const int WIDTH = 4096;  // 增加数组的宽度
const int HEIGHT = 4096; // 增加数组的高度
const int REPEAT = 100;  // 增加重复遍历次数
Pixel image[WIDTH][HEIGHT];

// 假设的计算函数
int computeColor(const Pixel& p) {
    return p.color + 1; // 示例逻辑
}

int computeDepth(const Pixel& p) {
    return p.depth + 1; // 示例逻辑
}


// 行优先遍历处理函数（符合行优先存储）
void processImage() {
     for (int r = 0; r < REPEAT; r++) { // 增加重复次数
    for (int y = 0; y < HEIGHT; y++) {
        for (int x = 0; x < WIDTH; x++) {
            // 对每个像素进行处理
            image[y][x].color = computeColor(image[y][x]);
            image[y][x].depth = computeDepth(image[y][x]);
        }
    }
     }
}


int main() {
    // 记录开始时间
    auto start = std::chrono::high_resolution_clock::now();
    
    // 调用处理函数
    processImage();
    
    // 记录结束时间
    auto end = std::chrono::high_resolution_clock::now();
    
    // 计算执行时间
    std::chrono::duration<double> elapsed = end - start;
    
    std::cout << "After Optimization: " << elapsed.count() << " seconds\n";
    
    return 0;
}
